package hu.bme.mit.androtext.gen.gen2;

import com.google.inject.Inject;
import hu.bme.mit.androtext.androgen.androGenDsl.TargetApplication;
import hu.bme.mit.androtext.gen.IGenerator;
import hu.bme.mit.androtext.gen.activity.AbstractActivityClassGenerator;
import hu.bme.mit.androtext.gen.activity.ActivityClassGenerator;
import hu.bme.mit.androtext.gen.application.AndroidManifestGenerator;
import hu.bme.mit.androtext.gen.entity.EntityClassGenerator;
import hu.bme.mit.androtext.gen.entity.EntityTableGenerator;
import hu.bme.mit.androtext.gen.resources.BasicAndroidInformationValuesGenerator;
import hu.bme.mit.androtext.gen.resources.LayoutResourceGenerator;
import hu.bme.mit.androtext.gen.resources.StringArrayResourceGenerator;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.xtext.generator.IFileSystemAccess;

@SuppressWarnings("all")
public class AndroTextGeneratorMain implements IGenerator {
  @Inject
  private EntityClassGenerator entityClassGenerator;
  
  @Inject
  private EntityTableGenerator entityTableGenerator;
  
  @Inject
  private AndroidManifestGenerator manifestGenerator;
  
  @Inject
  private BasicAndroidInformationValuesGenerator basicValueGenerator;
  
  @Inject
  private StringArrayResourceGenerator stringArrayResourceGenerator;
  
  @Inject
  private AbstractActivityClassGenerator abstractActivityClassGenerator;
  
  @Inject
  private ActivityClassGenerator activityClassGenerator;
  
  @Inject
  private LayoutResourceGenerator layoutGenerator;
  
  public void doGenerate(final ResourceSet resourceSet, final IFileSystemAccess fsa, final TargetApplication targetApplication) {
      this.entityClassGenerator.doGenerate(resourceSet, fsa, targetApplication);
      this.entityTableGenerator.doGenerate(resourceSet, fsa, targetApplication);
      this.manifestGenerator.doGenerate(resourceSet, fsa, targetApplication);
      this.basicValueGenerator.doGenerate(resourceSet, fsa, targetApplication);
      this.stringArrayResourceGenerator.doGenerate(resourceSet, fsa, targetApplication);
      this.abstractActivityClassGenerator.doGenerate(resourceSet, fsa, targetApplication);
      this.activityClassGenerator.doGenerate(resourceSet, fsa, targetApplication);
      this.layoutGenerator.doGenerate(resourceSet, fsa, targetApplication);
  }
}
